package com.chen.controller;

import com.chen.pojo.common.PageResult;
import com.chen.pojo.dto.VmTypeDto;
import com.chen.pojo.entry.VmType;
import com.chen.service.VmTypeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * @author chen
 * @version 1.0
 * @create_date 2025/8/19
 * 设备类型管理
 */
@Slf4j
@RestController
@RequestMapping("/api/vm-service/vmType")
public class VmTypeController {
    @Autowired
    private VmTypeService vmTypeService;

    /**
     * 分页查询
     *
     * @param pageIndex 起始页
     * @param pageSize  页大小
     * @param name      设备类型名称
     * @return 设备类型列表
     */
    @GetMapping("/search")
    public PageResult<VmType> searchList(Integer pageIndex, Integer pageSize, String name) {
        log.info("开始分页查询，当前页：{}，页面显示条数：{}，查询条件：设备类型名称-{}", pageIndex, pageSize, name);
        return vmTypeService.searchList(pageIndex, pageSize, name);
    }

    /**
     * 新增设备类型
     *
     * @param vmTypeDto 设备类型信息
     * @return 结果
     */
    @PostMapping
    public Boolean addVmType(@RequestBody VmTypeDto vmTypeDto) {
        log.info("新增设备类型");
        return vmTypeService.addVmType(vmTypeDto);
    }

    /**
     * 更新设备类型
     *
     * @param vmTypeDto 设备类型信息
     * @param typeId    设备类型id
     * @return 结果
     */
    @PutMapping("/{typeId}")
    public Boolean updateType(@RequestBody VmTypeDto vmTypeDto, @PathVariable String typeId) {
        log.info("更新设备类型，设备类型id：{}", typeId);
        return vmTypeService.updateType(typeId, vmTypeDto);
    }

    /**
     * 删除设备类型信息
     *
     * @param typeId 设备类型id
     * @return 结果
     */
    @DeleteMapping("/{typeId}")
    public Boolean deleteType(@PathVariable String typeId) {
        log.info("删除设备类型，设备类型id：{}", typeId);
        return vmTypeService.deleteType(typeId);
    }

    // 售货机类型详情
    @GetMapping("/{typeId}")
    public VmType getVmTypeById(@PathVariable Integer typeId) {
        return vmTypeService.getById(typeId);
    }

}
